32 research outputs found

    Step-Indexed Normalization for a Language with General Recursion

    Get PDF
    The Trellys project has produced several designs for practical dependently typed languages. These languages are broken into two fragments-a_logical_fragment where every term normalizes and which is consistent when interpreted as a logic, and a_programmatic_fragment with general recursion and other convenient but unsound features. In this paper, we present a small example language in this style. Our design allows the programmer to explicitly mention and pass information between the two fragments. We show that this feature substantially complicates the metatheory and present a new technique, combining the traditional Girard-Tait method with step-indexed logical relations, which we use to show normalization for the logical fragment.Comment: In Proceedings MSFP 2012, arXiv:1202.240

    Linear Type Systems for Communication

    No full text
    Enhancing the type system of a programming language brings benefits on many fronts. We define and explore a simple concurrent functional language in a linear typing discipline, showing how more powerful types can lead to more controlled interaction between threads.

    Modal Types for Mobile Code (Thesis Proposal) ∗

    No full text
    Modal logic is a family of logics with the ability to simultaneously reason about truth from multiple perspectives. Our previous work showed how the modal logic Intuitionistic S5 could form the basis for a simple lambda calculus for spatially distributed programs. I propose here a thesis project to demonstrate the efficacy and elegance of modal type systems for controlling spatially distributed resources in a programming language. The project has strong components of both theory and practice: the design of ML5, a new programming language for distributed computing, and its implementation. I present technical details for the language and implementation where they have been completed, and a plan for the work to be done where they have not.
    corecore